using System;
using System.Collections.Generic;
using System.Text;

namespace Mud.Common.Physical
{
    /// <summary>
    /// Possible types of communication.
    /// </summary>
    [Flags]
    public enum CommunicationType
    {
        None = 0,

        VerbalSay = 1,
        VerbalWhisper = 2,
        VerbalYell = 4,
        TelepaticDirected = 8,

        TelepaticOmnidirectional = 16,

        All = (VerbalSay | VerbalWhisper | VerbalYell | TelepaticDirected | TelepaticOmnidirectional)
    }

    /// <summary>
    /// Possible types of movement.
    /// </summary>
    [Flags]
    public enum MovementType
    {
        None = 0,

        Walking = 1,
        Running = 2,

        All = (Walking | Running)

    }


    /// <summary>
    /// Represents an orientation in the game world.
    /// </summary>
    public enum Orientation
    {
        North = 0,
        NorthWest = 1,
        West = 2,
        SouthWest = 3,
        South = 4,
        SouthEast = 5,
        East = 6,
        NorthEast = 7
    }


    /// <summary>
    /// Types of senses.
    /// </summary>
    [Flags]
    public enum SenseType
    {
        /// <summary>
        /// No sense.
        /// </summary>
        None = 0,
        /// <summary>
        /// Can be seen.
        /// </summary>
        Visual = 1,
        /// <summary>
        /// Can be heard.
        /// </summary>
        Acoustic = 2,
        /// <summary>
        /// Can be 'seen' by infrared or sensed by heat sensors.
        /// </summary>
        Thermal = 4,
        /// <summary>
        /// Can be felt by touch.
        /// </summary>
        Tactile = 8,

        /// <summary>
        /// All senses.
        /// </summary>
        All = (Visual | Acoustic | Thermal | Tactile)
    }

    /// <summary>
    /// Types of terrain
    /// </summary>
    public enum TerrainType
    {
        Void = 0,
        Grass = 1,
        Dirt = 2,
        Stone = 3,
        Water = 4,
        Ice = 5,
        Sand = 6
    }
}
